package com.web.my12306.pojo;

import java.util.HashSet;
import java.util.Set;

/**
 * 访问授权模型
 * @author 开发者姓名
 */

public class AccessPrivilege
{

	/**
	 * 是否是根用户
	 * <p>
	 * 根用户不受鉴权机能限制
	 */
	private boolean isRootUser = false;
	
	/**
	 * 当前用户已授权访问的 URI
	 */
	private Set<String> privileges = new HashSet<>();

	
	/**
	 * <默认构造函数>
	 */
	private AccessPrivilege() {
		super();
	}
	
	/**
	 * 构造函数
	 * <p>
	 * 此类必须带参构造
	 * @param isRootUser 该授权是否是根用户授权
	 * @param privileges 该用户已授权访问的所有 URI
	 */
	public AccessPrivilege(boolean isRootUser , Set<String> privileges) {
		this();
		
		this.isRootUser = isRootUser;
		this.privileges = privileges;
	}

	/**
	 * 该授权是否是根用户授权
	 * @return the isRootUser
	 */
	public boolean isRootUser() {
		return isRootUser;
	}
	
	/**
	 * 判断提供的 URI 是否已授权
	 * @param uri 访问地址 URI
	 * @return true 若该URI已授权,否则返回 false
	 */
	public boolean isLegal(String uri) {
		return this.privileges.contains(uri);
	}
}
